import UIKit

//
@available(iOS 8.0, *)
extension QKC where AA :UIPrinter {
	/**
     *  @abstract   Return the URL of the printer.
     *  @discussion This method returns the full URL of the printer which can be
     *            used in future calls to printerWithURL to access the same
     *            printer.
     */
    open func url_qk_g() -> QKC<AA,YY,ZZ, URL >{
		 self +^ self.value.url
	}

	/**
     *  @abstract   Return a human-readable printer name.
     *  @discussion This method returns the printer name suitable for displaying in the UI.
     */
    open func displayName_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.displayName
	}

	/**
     *  @abstract   Return a human-readable location.
     *  @discussion This method returns the printer's location. This is human-readable text that
     *             usually appears in the UI below the printer's name (such as "Front Office").
     *              Returns nil if the printer doesn't have a location string.
     *        This property's value is undefined until contactPrinter: has been called and
     *        completed successfully.
     */
    open func displayLocation_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.displayLocation
	}

	/**
     *  @abstract   Returns the supported job types of this printer.
     *  @discussion This method returns a mask with all the UIPrinterJobTypes values that
     *        the printer supports.
     *        This property's value is undefined until contactPrinter: has been called and
     *        completed successfully.
     */
    open func supportedJobTypes_qk_g() -> QKC<AA,YY,ZZ, UIPrinter.JobTypes >{
		 self +^ self.value.supportedJobTypes
	}

	/**
     *  @abstract   Return make (manufacturer) and model of the printer.
     *  @discussion This method returns the make and model of the printer, which
     *        is usually the manufacturer, model, and model number.
     *        This property's value is undefined until contactPrinter: has been called and
     *        completed successfully.
     */
    open func makeAndModel_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.makeAndModel
	}

	/**
     *  @abstract   Return whether this printer supports color printing.
     *  @discussion This method returns YES if the printer supports full color printing, NO
     *         otherwise.
     *        This property's value is undefined until contactPrinter: has been called and
     *        completed successfully.
     *
     */
    open func supportsColor_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.supportsColor
	}

	/**
     *  @abstract   Return whether this printer supports duplex (double-sided) printing.
     *  @discussion This method returns YES if the printer supports duplex (double-sided)
     *        printing, NO otherwise.
     *        This property's value is undefined until contactPrinter: has been called and
     *        completed successfully.
     */
    open func supportsDuplex_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.supportsDuplex
	}

	/**
     *  @method     contactPrinter:
     *  @abstract   Check if printer is reachable, and update printer information.
     *  @discussion This method checks to see if this printer is available on the network,
     *         and sets the displayName, displayLocation, supportedJobTypes, makeAndModel,
     *        supportsColor, and supportsDuplex for the printer.
     *        The operation can take up to 30 seconds.
     */
    open func contactPrinter_qk_f(_ completionHandler: ((Bool) -> Void)? = nil) -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.contactPrinter(completionHandler)
	}

}

